Skip to content

Clash Verge‑Rev 添加自定义分流规则完整指南

目标:给 mihomo 内核追加自定义分流规则,区分两种实现方式、语法、参数、配置位置,用于日常自定义域名/网段路由。

1. 两种添加自定义规则方式对比

Clash Verge‑Rev 中增加自定义路由规则,有两条正规路径。

方式位置生效范围特点
全局扩展脚本(JS)设置 → 扩展 → 全局扩展脚本全部订阅全局生效JS 操作数组,可以把自定义规则插到规则列表最顶部,优先级最高,适合多套订阅共用一套自定义规则。
订阅前置规则右键订阅 → 编辑规则 → 前置规则仅当前这一个订阅生效直接写规则文本,不需要 JS,调试方便;更换订阅需要重新填写。

⚠️重要提醒:不要在「全局扩展配置(YAML merge)」里面写 rules 数组。 YAML merge 是覆盖合并,写 rules 会直接替换掉订阅全部原有规则,上万条订阅规则直接丢失,网络异常。 YAML merge 适合改 tun、dns、profile 这类配置项,不适合新增路由规则


2. 分流规则常用语法参考

规则执行逻辑:从上往下依次匹配,命中即停止继续匹配,写在越前面优先级越高。

IP‑CIDR 网段规则

IP-CIDR,192.200.125.0/24,DIRECT,no-resolve
  • IP‑CIDR:按IP网段匹配
  • 192.200.125.0/24:网段 192.200.125.0‑192.200.125.255
  • DIRECT:直连策略,不走代理节点
  • no‑resolve:不主动解析域名;仅直接访问IP的时候该规则生效

fake‑ip 模式注意:浏览器访问域名,内核返回虚拟fake‑ip,此时 IP‑CIDR 无法匹配域名解析后的真实内网IP。内网域名请使用 DOMAIN‑SUFFIX

DOMAIN 精确域名匹配

DOMAIN,dl.china317.com,🚀 节点选择

只精准匹配 dl.china317.com,其他子域名、主域名不会命中。

DOMAIN‑SUFFIX 域名后缀匹配(最常用)

# 匹配全部 *.317.com 子域名,走代理策略组
DOMAIN-SUFFIX,317.com,🚀 节点选择

# 匹配全部 *.china318.com,全部直连
DOMAIN-SUFFIX,china318.com,DIRECT

匹配该后缀结尾所有域名,包含主域名、全部子域名。

MATCH 兜底规则

MATCH,DIRECT

匹配剩下全部流量,作为兜底策略;放在自定义规则末尾。

⚠️策略组名字必须完全一致,emoji、空格不能错,否则报 proxy [xxx] not found,配置校验失败。


3. 全局扩展脚本 JS(全局生效)

设置 → 扩展 → 全局扩展脚本。 适用于:切换多个订阅,都希望带上同一套自定义规则。

javascript
function main(config) {
  // 如果rules不存在,初始化空数组
  if (!config.rules) {
    config.rules = [];
  }

  // ==========在这里维护你的自定义规则列表==========
  const customRules = [
    "IP-CIDR,192.200.125.0/24,DIRECT,no-resolve",
    "DOMAIN-SUFFIX,baidu.com,🚀 节点选择",
    "DOMAIN-SUFFIX,317.com,🚀 节点选择",
    "DOMAIN-SUFFIX,china318.com,DIRECT",
    "MATCH,DIRECT"
  ];

  // 将自定义规则插入规则数组最头部,优先级最高
  config.rules = [...customRules, ...config.rules];

  console.log("自定义规则已加载,第一条:", config.rules[0]);
  return config;
}

操作步骤:

  1. 粘贴完整代码;
  2. 勾选启用脚本;
  3. 保存,重启内核。

4. 订阅前置规则(单订阅生效,调试优先)

右键你的订阅 → 编辑规则 → 前置规则,直接粘贴规则文本,不需要 JS。 适合调试,规则可以直接在查看配置里看到,方便确认是否注入成功。

IP-CIDR,192.200.125.0/24,DIRECT,no-resolve
DOMAIN-SUFFIX,baidu.com,🚀 节点选择
DOMAIN-SUFFIX,317.com,🚀 节点选择
DOMAIN-SUFFIX,china318.com,DIRECT
MATCH,DIRECT

注意:仅当前订阅生效,换别的订阅需要重新填写。


5. 配套辅助YAML配置(全局扩展配置)

设置 → 扩展 → 全局扩展配置,YAML片段,不是规则。 作用:记忆策略组手动选择的节点,重载订阅、重启内核不重置你的节点选择。

yaml
profile:
  store-selected: true
  store-fake-ip: true
  • store-selected: true:保存策略组手动选中节点
  • store-fake-ip: true:持久 fake‑ip 缓存,加快解析

⚠️这里不要写 rules。


6. 调试校验方法

  1. 看日志:开启JS脚本后,内核日志可以看到 console.log 输出,确认脚本执行;
  2. 查看配置:打开订阅查看配置,滚动到 rules,确认自定义规则出现在数组最前面;
  3. 连接日志:访问测试域名,看连接日志显示命中的策略(DIRECT / 🚀 节点选择);
  4. 红色弹窗 = 配置错误,内核无法加载;蓝色提示大多只是版本检查超时,不影响分流。

7. 日常维护模板说明

后续新增自定义域名/网段,只需要在对应位置添加一行规则:

JS脚本内示例追加:

javascript
const customRules = [
  "IP-CIDR,192.200.125.0/24,DIRECT,no-resolve",
  "DOMAIN-SUFFIX,baidu.com,🚀 节点选择",
  "DOMAIN-SUFFIX,317.com,🚀 节点选择",
  "DOMAIN-SUFFIX,china318.com,DIRECT",
  // 在这里继续追加你的自定义规则
  "DOMAIN-SUFFIX,example.com,DIRECT",
  "MATCH,DIRECT"
];
最近更新